#pragma once
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#include <assert.h>

typedef int NodeDataType;
typedef struct ListNode
{
	NodeDataType data;
	struct ListNode* next;
	struct ListNode* prev;
}ListNode;

ListNode* BuyNode(NodeDataType x);

ListNode* LTInit();

void LTPushBack(ListNode* phead, NodeDataType s);

void LTPrint(ListNode* phead);

void LTDesTory(ListNode* phead);

void LTPushFront(ListNode* phead, NodeDataType s);

bool IfEmpty(ListNode* phead);

void LTPopBack(ListNode* phead);

void LTPopFront(ListNode* phead);

ListNode* LTFind(ListNode* phead, NodeDataType s);

void LTInsertAfter(NodeDataType s, ListNode* pos);

void LTErase(ListNode* phead, ListNode* pos);
